1. Field of the Invention
The present invention relates to automatically updating data elements used by software applications. In particular, the present invention relates to automatically updating data elements in form documents used by software applications.
2. Description of the Related Art
Existing systems can allow different or same applications accessing a common database to simultaneously use/access the database. In particular, applications using form documents that contain data elements allow users using the applications to simultaneously edit (update) the data elements in the forms. A data element may be, for example, a field, including entries (data) in the field. Typically, to achieve such simultaneous use the system locks the common database or the applicable data elements when a first user begins working on a form, for example, to input or edit data elements, thereby precluding other users from accessing the common database, or working on the form or certain data elements of the form while the form is being accessed by the first user. Therefore, typical systems implement “a last in, last win” update procedure. In particular, in a typical system data entered by a first user in a form can be overwritten by another user before the first user finalizes the form, such as by signing the form electronically, saving, printing or forwarding.
Further, in existing systems maintaining a common (main/primary/central) database and a local (application-based) database, the common database and the application-based database should be synchronized. For example, in a network environment, such as a client-server network, where the common database is a network (server) database, local application-based databases on client terminals advantageously allows users to perform application tasks without a network connection. When maintaining two separate databases, either in a network environment or in a standalone environment where multiple applications execute, each with an application-based database and a local common database, a transaction log, which is a database, can maintain a log of changes made to the application-based databases. The application-based databases can be synchronized with the common database at a later time, for example, when the user again connects to the network. Such synchronization, however, gives rise to the problem of last in, last win when changes by users, respectively, are applied to the common database. For example, in the network environment, upon synchronization, changes made offline could become the latest changes in the main database irrespective of what other users had performed.
More particularly, in the system maintaining two databases and using forms that share or use common data elements, when users simultaneously edit the common data elements in different forms, a user cannot be aware of changes made by other users, potentially overwriting (deleting) the other users' data. Further, in such a system the user can approve a form without knowledge of changes made by the other users. In addition, such a system provides inefficient data input by the users. For example, two users open the same empty form or different empty forms that share common data elements, when a first user completes the form and saves the form (storing data in the main database), the second user would not know that some of the fields in the form opened by the second user have already been completed by the first user. Therefore, when the second user also completes the fields and saves the form, the first user's data are overwritten or deleted. Further, the second user cannot take advantage of using fields already completed by the first user, requiring repetitious data entry.